package br.com.abelha.manager.db;

import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import br.com.abelha.manager.entity.FichaBCrianca;
import br.com.abelha.manager.entity.FormA;
import br.com.abelha.manager.validator.FichasParserXml;
import br.com.abelha.manager.ws.AbelhaFichaAParser;

/**
 * 
 * @author dalsonsouza
 * 
 */

public class DAOGenerateFichaAWs extends Activity {

	private AbelhaFichaAParser abelhaFichaAParser;
	private DAOFormA daoFormA;

	private DAOFichaB<FichaBCrianca> daoFichaBCrianca;
	private String nameFile;

	public DAOGenerateFichaAWs(Context context) {
		daoFormA = new DAOFormA(context);
		daoFichaBCrianca = new DAOFichaB<FichaBCrianca>(context);
	}

	/**
	 * 
	 * Método responsável por realizar uma consulta de Fichas A's cadastradas e realizar
	 * o parser no arquivo XML em questão
	 * 
	 */

	public boolean getAllContentesToServer() {

		try {

			abelhaFichaAParser = new AbelhaFichaAParser();
			Cursor cursorFichaA = daoFormA.listPreCadastros();

			/**
			 * Envio de ficha A 
			 * Cursor c = daoFormA.listPreCadastros();
			 */
			

			if (cursorFichaA == null) {
				return false;

			} else {
				if (cursorFichaA.moveToFirst()){
					while (!cursorFichaA.isAfterLast()) {
						
						abelhaFichaAParser = getFields(cursorFichaA);
						
						FichasParserXml aParserXml = new FichasParserXml(abelhaFichaAParser);
						//aParserXml.generateXml();
						
						Cursor cursorFichaBCrianca = daoFichaBCrianca.listAllCursor(new Long(abelhaFichaAParser.getId_ficha()).toString(), new FichaBCrianca());
						if(cursorFichaBCrianca == null){
							break;
							
						}else{
							
							if(cursorFichaBCrianca.moveToFirst()){
								while(!cursorFichaBCrianca.isAfterLast()){
									FichaBCrianca bCrianca = daoFichaBCrianca.getFields(cursorFichaBCrianca, new FichaBCrianca());
									aParserXml = new FichasParserXml(bCrianca);
									aParserXml.setComeFromFichaB(true);
									aParserXml.setIdFichaA(bCrianca.getId_fichaA().toString());
									aParserXml.setIdFichaB(bCrianca.getId().toString());
									aParserXml.setIdPaciente(bCrianca.getId_paciente().toString());
									aParserXml.generateXml();
									
									cursorFichaBCrianca.moveToNext();
									
								}
							}
						}
						cursorFichaA.moveToNext();
						
					}
				}
			}
			
			//String result = new RequestAbelhaService().uri("http://192.168.1.103/PFS/postxml.aspx").xml(newxmlfile).timeout(3000).post();
			

		} catch (Exception e) {
			e.printStackTrace();
		}

		return false;

	}

	public AbelhaFichaAParser getFields(Cursor cursor) {
		AbelhaFichaAParser abelhaFichaAParser = new AbelhaFichaAParser();

		Long id_ficha = cursor.getLong(cursor.getColumnIndex(FormA.ID_FICHA));
		String estado = cursor.getString(cursor.getColumnIndex(FormA.ESTADO));
		String endereco = cursor.getString(cursor
				.getColumnIndex(FormA.ENDERECO));
		Integer id_endereco = cursor.getInt(cursor
				.getColumnIndex(FormA.ID_ENDERECO));
		String numero = cursor.getString(cursor.getColumnIndex(FormA.NUMERO));
		String bairro = cursor.getString(cursor.getColumnIndex(FormA.BAIRRO));
		Integer id_bairro = cursor.getInt(cursor
				.getColumnIndex(FormA.ID_BAIRRO));
		String cep = cursor.getString(cursor.getColumnIndex(FormA.CEP));
		String municipio = cursor.getString(cursor
				.getColumnIndex(FormA.MUNICIPIO));
		Integer id_municipio = cursor.getInt(cursor
				.getColumnIndex(FormA.ID_MUNICIPIO));
		String segmento = cursor.getString(cursor
				.getColumnIndex(FormA.SEGMENTO));
		Integer area = cursor.getInt(cursor.getColumnIndex(FormA.AREA));
		Integer microArea = cursor.getInt(cursor
				.getColumnIndex(FormA.MICROAREA));
		Integer familia = cursor.getInt(cursor.getColumnIndex(FormA.FAMILIA));
		String data_emissao = cursor.getString(cursor
				.getColumnIndex(FormA.DATA_EMISSAO));
		int id_tipo_casa = cursor.getInt(cursor
				.getColumnIndex(FormA.ID_TIPO_CASA));
		String tipo_casa_qual = cursor.getString(cursor
				.getColumnIndex(FormA.TIPO_CASA_QUAL));
		Integer numero_comodos = cursor.getInt(cursor
				.getColumnIndex(FormA.NUMERO_COMODOS));
		String energia_eletrica = cursor.getString(cursor
				.getColumnIndex(FormA.ENERGIA_ELETRICA));
		Integer id_destino_lixo = cursor.getInt(cursor
				.getColumnIndex(FormA.ID_DESTINO_LIXO));
		Integer id_trat_agua = cursor.getInt(cursor
				.getColumnIndex(FormA.ID_TRAT_AGUA));
		Integer id_abast_agua = cursor.getInt(cursor
				.getColumnIndex(FormA.ID_ABAST_AGUA));
		Integer id_destino_fezes = cursor.getInt(cursor
				.getColumnIndex(FormA.ID_DESTINO_FEZES));
		Integer id_plano_saude = cursor.getInt(cursor
				.getColumnIndex(FormA.ID_PLANO_SAUDE));
		Integer numero_pessoas_plano = cursor.getInt(cursor
				.getColumnIndex(FormA.NUMERO_PESSOAS_PLANO));
		String plano_saude = cursor.getString(cursor
				.getColumnIndex(FormA.PLANO_SAUDE));
		String observacoes = cursor.getString(cursor
				.getColumnIndex(FormA.OBSERVACOES));
		String doenca_hospital = cursor.getString(cursor
				.getColumnIndex(FormA.DOENCA_HOSPITAL));
		String doenca_us = cursor.getString(cursor
				.getColumnIndex(FormA.DOENCA_US));
		String doenca_benzedeira = cursor.getString(cursor
				.getColumnIndex(FormA.DOENCA_BENZEDEIRA));
		String doenca_farmacia = cursor.getString(cursor
				.getColumnIndex(FormA.DOENCA_FARMACIA));
		String doenca_outros = cursor.getString(cursor
				.getColumnIndex(FormA.DOENCA_OUTROS));
		String doenca_quais = cursor.getString(cursor
				.getColumnIndex(FormA.DOENCA_QUAIS));
		String meios_comun_radio = cursor.getString(cursor
				.getColumnIndex(FormA.MEIOS_COMUN_RADIO));
		String meios_comun_tv = cursor.getString(cursor
				.getColumnIndex(FormA.MEIOS_COMUN_TV));
		String grupos_comunitarios_cooperativa = cursor.getString(cursor
				.getColumnIndex(FormA.GRUPOS_comun_COOPERATIVA));
		String grupos_comunitarios_religioso = cursor.getString(cursor
				.getColumnIndex(FormA.GRUPOS_comun_RELIGIOSO));
		String grupos_comunitarios_associacoes = cursor.getString(cursor
				.getColumnIndex(FormA.GRUPOS_comun_ASSOCIACOES));
		String grupos_comunitarios_outros = cursor.getString(cursor
				.getColumnIndex(FormA.GRUPOS_comun_OUTROS));
		String grupos_comunitarios_quais = cursor.getString(cursor
				.getColumnIndex(FormA.GRUPOS_comun_QUAIS));
		String meio_transp_onibus = cursor.getString(cursor
				.getColumnIndex(FormA.MEIO_TRANSP_ONIBUS));
		String meio_transp_caminhao = cursor.getString(cursor
				.getColumnIndex(FormA.MEIO_TRANSP_CAMINHAO));
		String meio_transp_carro = cursor.getString(cursor
				.getColumnIndex(FormA.MEIO_TRANSP_CARRO));
		String meio_transp_carroca = cursor.getString(cursor
				.getColumnIndex(FormA.MEIO_TRANSP_CARROCA));
		String meio_transp_outros = cursor.getString(cursor
				.getColumnIndex(FormA.MEIO_TRANSP_OUTROS));
		String meio_transp_quais = cursor.getString(cursor
				.getColumnIndex(FormA.MEIO_TRANSP_QUAIS));
		String num_bolsa_familia = cursor.getString(cursor
				.getColumnIndex(FormA.NUM_BOLSA_FAMILIA));
		Integer pre_cadastro = cursor.getInt(cursor
				.getColumnIndex(FormA.PRE_CADASTRO));

		abelhaFichaAParser.setId_ficha(id_ficha);
		abelhaFichaAParser.setEstado(estado);
		abelhaFichaAParser.setId_endereco(id_endereco);
		abelhaFichaAParser.setEndereco(endereco);
		abelhaFichaAParser.setNumero(numero);
		abelhaFichaAParser.setBairro(bairro);
		abelhaFichaAParser.setId_bairro(id_bairro);
		abelhaFichaAParser.setCep(cep);
		abelhaFichaAParser.setMunicipio(municipio);
		abelhaFichaAParser.setId_municipio(id_municipio);
		abelhaFichaAParser.setSegmento(segmento);
		abelhaFichaAParser.setArea(area);
		abelhaFichaAParser.setMicroArea(microArea);
		abelhaFichaAParser.setFamilia(familia);
		abelhaFichaAParser.setData_emissao(data_emissao);
		abelhaFichaAParser.setId_tipo_casa(id_tipo_casa);
		abelhaFichaAParser.setTipo_casa_qual(tipo_casa_qual);
		abelhaFichaAParser.setNum_comodos(numero_comodos);
		abelhaFichaAParser.setEnergia_eletrica(energia_eletrica);
		abelhaFichaAParser.setId_destino_lixo(id_destino_lixo);
		abelhaFichaAParser.setId_trat_agua(id_trat_agua);
		abelhaFichaAParser.setId_abast_agua(id_abast_agua);
		abelhaFichaAParser.setId_destino_fezes(id_destino_fezes);
		abelhaFichaAParser.setId_plano_saude(id_plano_saude);
		abelhaFichaAParser.setNumero_pessoas_plano(numero_pessoas_plano);
		abelhaFichaAParser.setObservacoes(observacoes);
		abelhaFichaAParser.setPlano_saude(plano_saude);
		abelhaFichaAParser.setDoenca_benzedeira(doenca_benzedeira);
		abelhaFichaAParser.setDoenca_farmacia(doenca_farmacia);
		abelhaFichaAParser.setDoenca_hospital(doenca_hospital);
		abelhaFichaAParser.setDoenca_outros(doenca_outros);
		abelhaFichaAParser.setDoenca_quais(doenca_quais);
		abelhaFichaAParser.setDoenca_us(doenca_us);
		abelhaFichaAParser
		.setGrupos_comunitarios_associacoes(grupos_comunitarios_associacoes);
		abelhaFichaAParser
		.setGrupos_comunitarios_cooperativa(grupos_comunitarios_cooperativa);
		abelhaFichaAParser
		.setGrupos_comunitarios_outros(grupos_comunitarios_outros);
		abelhaFichaAParser
		.setGrupos_comunitarios_quais(grupos_comunitarios_quais);
		abelhaFichaAParser
		.setGrupos_comunitarios_religioso(grupos_comunitarios_religioso);
		abelhaFichaAParser.setMeio_transp_caminhao(meio_transp_caminhao);
		abelhaFichaAParser.setMeio_transp_carro(meio_transp_carro);
		abelhaFichaAParser.setMeio_transp_carroca(meio_transp_carroca);
		abelhaFichaAParser.setMeio_transp_onibus(meio_transp_onibus);
		abelhaFichaAParser.setMeio_transp_outros(meio_transp_outros);
		abelhaFichaAParser.setMeio_transp_quais(meio_transp_quais);
		abelhaFichaAParser.setMeios_comun_radio(meios_comun_radio);
		abelhaFichaAParser.setMeios_comun_tv(meios_comun_tv);
		abelhaFichaAParser.setNum_bolsa_familia(num_bolsa_familia);
		abelhaFichaAParser.setPre_cadastro(pre_cadastro);

		return abelhaFichaAParser;
	}

	public String getNameFile() {
		return nameFile;
	}

	public void setNameFile(String nameFile) {
		this.nameFile = nameFile;
	}
	
	

}
